<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<script>
			/*
			JavaScript 声明提升
			JavaScript 中，函数及变量的声明都将被提升到函数的最顶部。
			JavaScript 中，变量可以在使用后声明，也就是变量可以先使用再声明。
			以下两个实例将获得相同的结果：
			*/
		   //实例1
		   function p1(){
			   x= 5; // 将变量x设置为5
			   console.log(x);//使用x
			   var x;//定义x
		   }
		   //实例2
		   function p2(){
			   var x;//声明x
			   x = 5;//将变量x设置为5
			   console.log(x);//使用x
		   }
		   /*
		   JavaScript 初始化不会提升
		   JavaScript 初始化不会提升，JavaScript 只有声明的变量部分会提升，初始化部分不会。
		   以下两个实例结果结果不相同：
		   */
		  //实例1
		  function p3(){
			  var x = 5;//初始化x
			  var y = 7;//初始化y
			  console.log(x,y);//使用x和y
		  }
		  //实例2
		  function p4(){
			  var x = 5;//初始化x
			  console.log(x,y);//使用x和y
			  var y = 7;//初始化y
		  }
		  /*
		  实例 2 的 y 输出了 undefined，这是因为变量声明 (var y) 提升了，
		  但是初始化(y = 7) 并不会提升，
		  所以 y 变量是一个未定义的变量。
		  */
		</script>
	</body>
</html>